/*
 * str.h
 *
 *  Created on: Oct 19, 2024
 *      Author: 35702
 */

#ifndef INC_STR_H_
#define INC_STR_H_




typedef struct  Motor_Config  //弧度表示
{
    __IO unsigned int              w1;            //加速段加速度
    __IO unsigned int              w2;            //减速段减速度
    __IO unsigned int				 V_max;       //最大速度，即匀速运行段速度
    __IO unsigned int				step_count;        //电机走过的总步长或总角度，


    __IO unsigned int			sum_step;    				// 总的步数


    __IO int					ZhuangTai;             //当前电机的状态
    __IO  long					accel_count;     // 上升的计数值C1
    __IO long					decel_lim ;      //减速段的步数
    __IO unsigned int			decel_start;    // 开始减速的步数
    __IO unsigned int			accel_N;       // 加速计数值--脉冲
    __IO unsigned int			MIN_C0;
    volatile unsigned long      step_delay;    //c0的值
    __IO unsigned int			speed_MoRn  ; //默认速度
    __IO unsigned int			sum;    // 脉冲个数累计



    TIM_HandleTypeDef *htim;
    uint32_t channel;

    __IO uint32_t      erls_data ;   // 遥控器发送的数据


}Motor_Config_p  ;


extern int a;
/*结构体数组6个存放梯形加减速的结构体数据*/


void Motor_Init();


/*电机初始化将电机的计数值全部归0--*/
void CH1_Motor_PWM(Motor_Config_p * list);



//void set_pw m(float angle,int a);
Motor_Config_p * Get_Motor_1(int motor_num ,unsigned long step,unsigned long accel ,unsigned int decel , unsigned int max_speed ,TIM_HandleTypeDef *htim,uint32_t channel);

#endif /* INC_STR_H_ */















/*
void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim)
{
	if(htim == &htim1)
	{
		flag++;
		if(flag>=2)
		{
		flag=0;
		MaiChong--;
		}
		uint16_t jishu=0;
		jishu = __HAL_TIM_GET_COUNTER(&htim1);
		__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_1,(jishu+ChongZhong)%0xffff);
	}
}*/
